iT邦幫忙

1

30天Leetcode挑戰(2):341 Flatten Nested List Iterator

  • 分享至 

  • xImage
  •  

碎碎念

寫完之後發現我好多function根本不會,但反正看著其他人的範例也是加減學

題幹

會有一個list裡面可能有很多list,要把它們變成只有一層,也就是扁平化

解題思路

一樣找我們的AI大神

我要寫一個確認list是否還有子list的pyhton程式
我要檢查子list有沒有list的遞迴
歷遍list元素,如果是有子list,將元素取出,存入母list

然後基本上就可以得到差不多的東西
稍微修改一下配合題目要使用的def(對,外層的三個def是題目要求的,超麻煩)

class NestedIterator:
    def __init__(self, nestedList):
        self.nestedList = nestedList
        self.flat_list = []
        self.index = 0
        def flatten(currentList):
            """
            此函数接受一个列表,并递归地将其扁平化。
            """
            for item in currentList:
                if item.isInteger():  # 直接检查整数(題目是說整數)
                    self.flat_list.append(item.getInteger())
                else:  # 检查子列表
                    flatten(item.getList())
        flatten(self.nestedList)
    def next(self) :
        """
        返回扁平列表中的下一个元素。
        """
        if self.hasNext():
            result = self.flat_list[self.index]
            self.index += 1
            return result

    def hasNext(self) -> bool:
        """
        检查是否还有更多的元素。
        """
        return self.index < len(self.flat_list)

圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言